package com.cosmoplat.xikai.business.domain;


import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

import com.cosmoplat.xikai.common.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

/**
 * @TableName base_product_info
 */
@ApiModel("产品日志表")
@Data
public class BaseProductInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    @ApiModelProperty(value = "主键", required = true, example = "1")
    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

    /**
     * 编码
     */
    @ApiModelProperty(value = "编码", required = true, example = "DP-0001")
    @Excel(name = "产品编码")
    private String productCode;

    /**
     * 名称
     */
    @ApiModelProperty(value = "名称", required = true, example = "设备产品日志名称")
    private String productName;

    /**
     * 描述
     */
    @ApiModelProperty(value = "描述", required = false, example = "这是对设备产品日志的详细描述")
    private String description;

    /**
     * 是否合格:1合格
     */
    @ApiModelProperty(value = "是否合格: true表示合格", required = true, example = "true")
    @Excel(name = "是否合格", readConverterExp = "true=是,false=否")
    private Boolean isQualified;

    /**
     * 开始时间
     */
    @ApiModelProperty(value = "开始时间", required = false)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "开始时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    /**
     * 结束时间
     */
    @ApiModelProperty(value = "结束时间", required = false)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "结束时间", dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    /**
     * 派工任务id
     */
    @ApiModelProperty(value = "派工任务id", required = true, example = "987654321")
    private String baseDispatchTaskId;

    /**
     * 派工单id
     */
    @ApiModelProperty(value = "派工单id", required = true, example = "5678901234")
    private String baseWorkOrderId;

    /**
     * 操作人员
     */
    @ApiModelProperty(value = "操作人员工号", required = false, example = "123456789")
    @Excel(name = "操作人员")
    private String operator;

    /**
     * 下发人员
     */
    @ApiModelProperty(value = "下发人员工号", required = false, example = "987654321")
    @Excel(name = "下发人员")
    private String issuer;

    /**
     * 产品类型
     */
    @ApiModelProperty(value = "产品类型", required = true, example = "1")
    private String productType;

    /**
     * 能耗
     */
    @ApiModelProperty(value = "能耗", required = false, example = "100")
    private BigDecimal consumption;

    /**
     * 能耗单位
     */
    @ApiModelProperty(value = "能耗单位", required = false, example = "kWh")
    private String consumptionUnit;

    /**
     * 最大压力-1
     **/
    @ApiModelProperty(value = "最大压力-1", required = false, example = "100")
    @Excel(name = "压力1")
    private BigDecimal maximumWorkingMoment1;

    /**
     * 最大压力-2
     **/
    @ApiModelProperty(value = "最大压力-2", required = false, example = "100")
    @Excel(name = "压力2")
    private BigDecimal maximumWorkingMoment2;


    /**
     * 处理人员工号
     **/
    @ApiModelProperty(value = "处理人员工号", required = false, example = "123456789")
    private String handleUserCode;

    /**
     * 处理人员姓名
     **/
    @ApiModelProperty(value = "处理人员姓名", required = false, example = "张三")
    private String handleUserName;

    /**
     * 处理备注
     **/
    @ApiModelProperty(value = "处理备注", required = false, example = "处理备注信息")
    @Excel(name = "处理原因")
    private String handleRemark;
}